/******************************************************************************* * Copyright (c) 2005, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ui.services; /** * <p> * The interface that should be implemented by services that make themselves * available through the <code>IAdaptable</code> mechanism. This is the * interface that drives the majority of services provided at the workbench * level. * </p> * <p> * A service has life-cycle. When the constructor completes, the service must be * fully functional. When it comes time for the service to go away, then the * service will receive a {@link #dispose()} call. At this point, the service * must release all resources and detach all listeners. A service can only be * disposed once; it cannot be reused. * </p> * <p> * This interface has nothing to do with OSGi services. * </p> * <p> * This interface can be extended or implemented by clients. * </p> * * @since 1.0 */ public interface IDisposable { /** * Disposes of this service. All resources must be freed. All listeners must * be detached. Dispose will only be called once during the life cycle of a * service. */ public void dispose(); }